Text copied to clipboard!
Tytuł
Text copied to clipboard!Programista systemowy
Opis
Text copied to clipboard!
Poszukujemy Programisty systemowego, który dołączy do zespołu odpowiedzialnego za projektowanie, rozwój i utrzymanie oprogramowania niskopoziomowego wspierającego działanie systemów operacyjnych, sterowników, narzędzi systemowych oraz komponentów infrastruktury IT. Osoba na tym stanowisku będzie pracować nad rozwiązaniami wymagającymi wysokiej wydajności, niezawodności i bezpieczeństwa, a także ścisłego zrozumienia architektury sprzętu, pamięci, procesów i komunikacji między komponentami systemu. Rola ta jest odpowiednia dla specjalisty, który dobrze odnajduje się w pracy z kodem blisko warstwy sprzętowej i potrafi analizować złożone problemy techniczne w środowiskach produkcyjnych oraz deweloperskich.
Programista systemowy współpracuje z inżynierami oprogramowania, administratorami systemów, architektami rozwiązań oraz zespołami bezpieczeństwa w celu tworzenia stabilnych i skalowalnych komponentów systemowych. Do codziennych zadań należy implementacja nowych funkcji, optymalizacja istniejącego kodu, diagnozowanie błędów, analiza logów, profilowanie wydajności oraz przygotowywanie dokumentacji technicznej. Istotnym elementem pracy jest również testowanie rozwiązań w różnych środowiskach, automatyzacja procesów oraz zapewnianie zgodności z wymaganiami jakościowymi i bezpieczeństwa.
Na tym stanowisku ważna jest bardzo dobra znajomość języków programowania wykorzystywanych w programowaniu systemowym, takich jak C, C++ lub Rust, a także praktyczne doświadczenie z systemami Linux lub Unix. Kandydat powinien rozumieć zagadnienia związane z zarządzaniem pamięcią, współbieżnością, synchronizacją procesów i wątków, interfejsami systemowymi, komunikacją międzyprocesową oraz debugowaniem na niskim poziomie. Mile widziane jest także doświadczenie w pracy ze sterownikami, systemami wbudowanymi, narzędziami kompilacji i integracji ciągłej.
Szukamy osoby dokładnej, samodzielnej i nastawionej na rozwiązywanie problemów, która potrafi łączyć wiedzę teoretyczną z praktyką inżynierską. Kandydat powinien umieć czytać i tworzyć dokumentację techniczną, proponować usprawnienia architektoniczne oraz efektywnie współpracować w zespole projektowym. Oferujemy możliwość pracy nad krytycznymi komponentami technologicznymi, udział w ambitnych projektach infrastrukturalnych oraz rozwój kompetencji w obszarze wydajności, bezpieczeństwa i niezawodności systemów. To stanowisko daje realny wpływ na jakość działania platform, usług i urządzeń, z których korzystają użytkownicy końcowi oraz zespoły techniczne w organizacji.
Obowiązki
Text copied to clipboard!- Projektowanie i rozwijanie oprogramowania systemowego oraz narzędzi niskopoziomowych.
- Tworzenie, testowanie i optymalizacja modułów współpracujących z systemem operacyjnym.
- Analiza i usuwanie błędów związanych z wydajnością, pamięcią i stabilnością systemu.
- Współpraca z zespołami infrastruktury, bezpieczeństwa i rozwoju aplikacji.
- Przygotowywanie dokumentacji technicznej dla tworzonych komponentów i interfejsów.
- Udział w przeglądach kodu oraz wdrażaniu dobrych praktyk programistycznych.
- Monitorowanie działania komponentów systemowych w środowiskach testowych i produkcyjnych.
- Automatyzacja procesów budowania, testowania i wdrażania oprogramowania systemowego.
Wymagania
Text copied to clipboard!- Doświadczenie w programowaniu w językach C, C++ lub Rust.
- Bardzo dobra znajomość systemów Linux lub Unix.
- Praktyczna wiedza z zakresu zarządzania pamięcią i współbieżności.
- Umiejętność debugowania i analizy problemów na niskim poziomie.
- Znajomość narzędzi takich jak GDB, Valgrind, strace lub perf.
- Doświadczenie z systemami kontroli wersji, zwłaszcza Git.
- Umiejętność czytania dokumentacji technicznej w języku angielskim.
- Zdolność analitycznego myślenia i samodzielnego rozwiązywania problemów.
Potencjalne pytania na rozmowie
Text copied to clipboard!- Jakie masz doświadczenie w programowaniu systemowym lub niskopoziomowym?
- W jakich językach programowania tworzysz oprogramowanie systemowe najczęściej?
- Czy pracowałeś lub pracowałaś z systemami Linux, Unix albo BSD?
- Jakie narzędzia wykorzystujesz do debugowania i profilowania kodu?
- Czy masz doświadczenie w pracy ze sterownikami, kernel space lub embedded?
- Jak podchodzisz do optymalizacji wydajności i zużycia pamięci?
- Czy uczestniczyłeś lub uczestniczyłaś w przeglądach kodu i projektowaniu architektury?
- Jak oceniasz swoją znajomość zagadnień związanych z bezpieczeństwem systemów?